(logo)  Shell-Befehle und ARexx-Makros ausführen

AWeb bietet die einzigartige und mächtige Fähigkeit, AmigaDOS-Shell-Befehle und ARexx-Makros von einer Seite aus auszuführen, einfach durch Anklicken eines Hyperlinks oder Übertragen eines Formulars (Form). Mit etwas Übung können Sie komplexe Anwendungen schaffen und AWeb als Benutzerschnittstelle benutzen, Scripte starten, die dynamisch neue Dokumente zusammenstellen, die dann über ARexx in AWeb geladen werden, usw.usf.

Einerseits können diese Möglichkeiten sehr nützlich sein, andererseits aber auch sehr gefährlich. Daher funktionieren sie nur von lokalen Seiten aus (mit einer URL, die mit file://localhost/ beginnt, und nur, wenn die Ermögliche Shell-Befehle-Einstellung angewählt ist.

Einfache Shell-Befehle

Um einen einfachen Befehl einzubauen, fügen Sie einfach einen normalen Hyperlink in Ihr Dokument ein, der zu einer URL dieser Art weist:
   x-aweb:command/Ihr_DOS_Befehl

Wenn ein Benutzer auf den Hyperlink klickt, wird Ihr_DOS_Befehl ausgeführt. Das Ergebnis des Befehls wird in einem Konsolenfenster ausgegeben, das sich automatisch öffnet, sofern Sie das Ergebnis nicht woandershin leiten.

Da HTML-Modus: Kompatibel die URL bei einem Leerzeichen stoppt, stellen Sie sicher, daß Sie alle Leerzeichen durch " " ersetzt haben, da andernfalls der Befehl nicht funktioniert, wenn Sie den kompatiblen HTML-Modus gewählt haben.

Beispiel: <a href="x-aweb:command/dir&#32;sys:&#32;all">get dir</a> würde dem Benutzer ermöglichen, den Befehl dir sys: all auszuführen, indem er auf die Worte "get dir" klickt.

Beachten Sie: Der DOS-Befehl wird in einer eigenen Shell ausgeführt, mit einem aktuellen Verzeichnis, das gleich dem aktuellen Verzeichnis von AWeb ist. Es wird empfohlen, nur absolute Pfadnamen für die DOS-Befehle zu verwenden, andernfalls hängt das Ergebnis davon ab, welches Verzeichnis das aktuelle war, als Sie AWeb starteten.

ARexx-Makros

Das Starten von ARexx-Makros von Ihren Seiten funktioniert ähnlich. Fügen Sie einfach einen normalen Hyperlink ein, der zu einer URL der Art
   x-aweb:rexx/Ihr_ARexx-Makro

führt. Wenn ein Benutzer auf diesen Hyperlink klickt, wird Ihr_ARexx-Makro ausgeführt, mit dem dem ARexx-Port für dieses Fenster als voreingestellten ARexx-Port.

Parameter

Sie können ein HTML-Formular oder eine anklickbare Map benutzen, um Parameter an Ihren Shell-Befehl oder an das ARexx-Makro zu übergeben.

Formulare (Forms)

Stellen Sie ein ACTION="x-aweb:Befehl/Ihr_Befehl"- Attribut in Ihrem <FORM>-Tag zur Verfügung, um den Befehl auszuführen, wenn ein Benutzer das Formular übermittelt. Ebenso können Sie ein ACTION="x-aweb:rexx/Ihr_Makro"-Attribut einfügen, um das ARexx-Makro zu starten.

METHOD=GET

Bei Formularen, die über METHOD=GET (die Voreinstellung) gebildet werden, werden Formular-Parameter in Amiga-DOS-Parameter umgewandelt: Der Feldname wird als Argumentname verwendet, und der Wert des Feldes als Wert des Arguments. Der Wert wird in Anführungszeichen gesetzt, wobei escape-, newline- und Anführungs-Zeichen weggelassen werden, wie AmigaDOS es erfordert.

Achtung: Schalter-Argumente (/S) können auf diese Art nicht übermittelt werden. Sie können stattdessen ein Script verwenden, wie in untenstehendem Beispiel.

Parameter für ARexx-Makros werden im selben Format übermittelt, wie die für DOS-Scripte.Die Argument-Zeichenkette enthält den Namen, ein Gleichheitszeichen und einen Wert in Anführungszeichen für jeden Formular-Parameter. Sehen Sie Sich im zweiten Beispiel unten an, wie so etwas abgefragt werden kann.

Beachten Sie, daß die Gesamtlänge aller auf diese Weise übermittelten Argumente etwa 4000 Zeichen beträgt. Was darüber hinaus geht, wird verschluckt. Wenn Ihr Formular einen längeren Satz an Argumenten produziert, verwenden Sie stattdessen METHOD=POST.

METHOD=POST

Bei Formularen, die über METHOD=POST gebildet werden, wird eine temporäre Datei erstellt. Der Befehl oder das ARexx-Script werden mit genau einem Argument aufgerufen, nämlich dem Dateinamen. Die temporäre Datei enthält die Nachricht genau so, wie sie einem HTTP-Server geschickt würde. Kurz gesagt bedeutet das: Der Befehl bzw. das Script ist dafür verantwortlich, daß die temporäre Datei anschließend gelöscht wird.

Anklickbare Maps

Wenn Sie eine anklickbare Map benutzen, werden x- und y-Koordinaten des Mauszeigers innerhalb des Bildes als Parameter ohne Schlüsselwort dem Befehl übergeben.

Das Ergebnis zurück in ARexx laden

Wenn Ihr Script oder Makro ein HTML-Dokument erstellt hat (oder auch nur eine einfache Textdatei), können Sie dieses automatisch zurück in AWeb laden. Benutzen Sie den ARexx OPEN-Befehl für diesen Zweck. Wenn Sie den Namen der Datei für verschiedene Antworten weiterverwenden wollen, stellen Sie sicher, daß Sie den RELOAD-Schalter gesetzt haben, um AWeb vom Anzeigen des vorherigen (gepufferten) Dokuments abzuhalten.

Natürlich funktioniert das besser von einem ARexx-Makro aus, als von einem DOS-Script. In einem DOS-Script haben Sie keine Möglichkeit, festzulegen, an welchen ARexx-Port Sie einen Befehl OPEN adressieren wollen.

Beispiele

Nachfolgend zwei Beispiele für die Möglichkeiten, die Sie haben. Sehen Sie sich zuerst den Quelltext dieser Seite an, sowie die ausgeführten Makros, damit klar ist, daß das Folgen des Links oder Übermitteln des Formulars keine Schaden anrichtet. Dann wählen Sie Ermögliche Shell-Befehle im Programmeinstellfenster und spielen Sie mit dem Formular.

Einfacher Shell-Befehl

Dieses Beispiel fragt einfach den Inhalt des Verzeichnisses SYS ab und zeigt ihn in einem eigenen Fenster: show dir.

ARexx-Makro

Dieses Beispiel fragt den Inhalt einer ausgewählten Schublade ab.

Schublade:

Zeige Verzeichnisse, keine Dateien

Gehe in Unterverzeichnisse


<- Zurück zum Index.